// %%%%%%%%%%%%%%%%%%%%%%% GLOBALS.H %%%%%%%%%%%%%%%%%%%%%%%
// Contains macros/definitions that potentially change program flow in multiple areas.
// ---------------------------------------------------------

//
// Enables various debugging properties
//

#define MODE_DEBUG
//#undef MODE_DEBUG

#if defined(MODE_DEBUG) || defined(ENABLE_DEBUG_PRINT)
#include <stdio.h>
#define DEBUG_PRINT(f,...) fprintf(stderr, "%s(%s:%d):" f "\n", "DEBUG",__FILE__,__LINE__, ##__VA_ARGS__)
#define DEBUG_PRINT_VAR(v) DEBUG_PRINT("%s=%d", #v, v)
#else
#define DEBUG_PRINT(f,...)
#define DEBUG_PRINT_VAR(v)
#endif

// 
// If a debug thread badly terminates, the Python thread sleeps for this timeout time before returning.
//

#define DEBUG_THREAD_TIMEOUT 100

//
// The amount of time to wait for a debug thread to terminate before telling it to stop in a wait-trace.
//

#define WAIT_TRACE_TIMEOUT 25000

//
// Specifies a buffer size for a byte array object
//

#define BYTE_ARRAY_BUF_SIZE 512